package com.study.hot.jetpack.startup

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.study.hot.databinding.ActivityStartupBinding
import com.study.hot.jetpack.startup.utils.MyGlobalUtils
import com.study.hot.jetpack.startup.utils.MyGlobalUtils2
import org.jetbrains.anko.sdk27.coroutines.onClick

/**
 * <pre>
 *     author : slx
 *     time   : 2020/11/24
 *     desc   : jetpack startup 组件，用于加快App启动速度
 * </pre>
 */

/*
*   app启动流程 Application$attachBaseContext->ContentProvider$onCreate->Application$onCreate
 *      由此可知为了加快App启动速度，可以在ContentProvider中初始化第三方类库等
 *      但是ContentProvider属于重量级类库，使用过多会减慢App启动速度
 *      所以推出App Startup组件，他可以将所有用于初始化的CP合并成一个，从而加快App启动速度
* */
class StartupActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val binding = ActivityStartupBinding.inflate(layoutInflater)
        with(binding) {
            setContentView(root)
            // 使用传统ContentProvider
            btnTest1.onClick {
                MyGlobalUtils.toast()
            }

            // 使用startup
            btnTest2.onClick {
                MyGlobalUtils2.toast()
            }

        }
    }
}